perm filename X[1,BGB] blob sn#051786 filedate 1973-07-03 generic text, type T, neo UTF8
␈↓ ↓⊗-------- QQ.RPG ------ 1 -----------␈↓ εK-------- QQ.RPG ------ 2 -----------
␈↓ ↓⊗     0  RESET     400015  CORE2   |      16  APRENB        21  REASSI
␈↓ εK040   CALL                  700   no-op
␈↓ ↓⊗     1  DDTIN     400016  ATTSEG  |  400016  ATTSEG        37  REMAP
␈↓ εK041   INIT                  701   DPYCLR
␈↓ ↓⊗     2  SETDDT    400017  DETSEG  |  400042  BUFLEN         0  RESET
␈↓ εK042   --                    702  *PPIOT
␈↓ ↓⊗     3  DDTOUT    400020  SETPRO  |      11  CORE      400054  RLEVEL
␈↓ εK043   SPCWAR                703   UPGIOT
␈↓ ↓⊗     4  DEVCHR    400021  SEGNUM  |  400015  CORE2         35  RUN
␈↓ εK044   --                    704   UINBF
␈↓ ↓⊗     5  DDTGT     400022  SEGSIZ  |  400001  CTLV      400046  RUNMSK
␈↓ εK045   --                    705   UOUTBF
␈↓ ↓⊗     6  GETCHR    400023  LINKUP  |      14  DATE          27  RUNTIM
␈↓ εK046   --                    706   FBREAD
␈↓ ↓⊗     7  DDTRL     400024  DISMIS  |  400067  DDCHAN    400037  SEGNAM
␈↓ εK047   CALLI                 707   FBWRT
␈↓ ↓⊗    10  WAIT      400025  INTENB  |       5  DDTGT     400021  SEGNUM
␈↓ εK050   OPEN                  710  *MAIL
␈↓ ↓⊗    11  CORE      400026  INTORM  |       1  DDTIN     400022  SEGSIZ
␈↓ εK051  *TTYUUO                711  *PTYUUO
␈↓ ↓⊗    12  EXIT      400027  INTACM  |       3  DDTOUT    400073  SETCRD
␈↓ εK052   --                    712   POINTS
␈↓ ↓⊗    13  UTPCLR    400030  INTENS  |       7  DDTRL          2  SETDDT
␈↓ εK053   --                    713   UPGMVE
␈↓ ↓⊗    14  DATE      400031  INTIIP  |  400035  DEBREAK   400002  SETNAM
␈↓ εK054   --                    714   UPGMVM
␈↓ ↓⊗    15  LOGIN     400032  INTIRQ  |  400017  DETSEG    400036  SETNM2
␈↓ εK055   RENAME                715  *PGIOT
␈↓ ↓⊗    16  APRENB    400033  INTGEN  |       4  DEVCHR        32  SETPOV
␈↓ εK056   IN                    716   CHNSTS
␈↓ ↓⊗    17  LOGOUT    400034  UWAIT   |  400051  DEVUSE    400020  SETPRO
␈↓ εK057   OUT                   717   CLKINT
␈↓ ↓⊗    20  SWITCH    400035  DEBREAK |  400024  DISMIS    400066  SETPRV
␈↓ εK060   SETSTS                720   INTMSK
␈↓ ↓⊗    21  REASSI    400036  SETNM2  |  400071  DSKPPN    400052  SETPR2
␈↓ εK061   STATO                 721   IMSKST
␈↓ ↓⊗    22  TIMER     400037  SEGNAM  |  400072  DSKTIM        36  SETUWP
␈↓ εK062   GETSTS                722   IMSKCL
␈↓ ↓⊗    23  MSTIME    400040  IWAIT   |  400005  EIOTM         31  SLEEP
␈↓ εK063   STATZ                 723  *INTUUO
␈↓ ↓⊗    24  GETPPN    400041  USKIP   |      12  EXIT      400044  SLEVEL
␈↓ εK064   INBUF
␈↓ ↓⊗    25  TRPSET    400042  BUFLEN  |  400057  FBWAIT    400064  SNEAKS
␈↓ εK065   OUTBUF
␈↓ ↓⊗    26  TRPJEN    400043  NAMEIN  |  400065  GDPTIM    400063  SNEAKW
␈↓ εK066   INPUT
␈↓ ↓⊗    27  RUNTIM    400044  SLEVEL  |       6  GETCHR    400000  SPCWAR
␈↓ εK067   OUTPUT            UUOs marked -- are illegal.
␈↓ ↓⊗    30  PJOB      400045  IENBW   |      34  GETLIN    400003  SPCWGO
␈↓ εK070   CLOSE             UUOs marked with * are extended
␈↓ ↓⊗    31  SLEEP     400046  RUNMSK  |  400062  GETNAM    400004  SWAP
␈↓ εK071   RELEAS                 UUOs that use the AC field to
␈↓ ↓⊗    32  SETPOV    400047  TTYMES  |      24  GETPPN        20  SWITCH
␈↓ εK072   MTAPE                  determine the exact meaning.
␈↓ ↓⊗    33  PEEK      400050  JOBRD   |  400053  GETPR2        22  TIMER
␈↓ εK073   UGETF
␈↓ ↓⊗    34  GETLIN    400051  DEVUSE  |      40  GETSEG        26  TRPJEN
␈↓ εK074   USETI
␈↓ ↓⊗    35  RUN       400052  SETPR2  |      41  GETTAB        25  TRPSET
␈↓ εK075   USETO
␈↓ ↓⊗    36  SETUWP    400053  GETPR2  |  400045  IENBW     400014  TTYIOS
␈↓ εK076   LOOKUP
␈↓ ↓⊗    37  REMAP     400054  RLEVEL  |  400027  INTACM    400047  TTYMES
␈↓ εK077   ENTER
␈↓ ↓⊗    40  GETSEG    400055  UFBPHY  |  400025  INTENB    400012  UFBCLR
␈↓ εK
␈↓ ↓⊗    41  GETTAB    400056  UFBSKP  |  400030  INTENS    400060  UFBERR
␈↓ εK
␈↓ ↓⊗                  400057  FBWAIT  |  400033  INTGEN    400010  UFBGET
␈↓ εK
␈↓ ↓⊗400000  SPCWAR    400060  UFBERR  |  400031  INTIIP    400011  UFBGIV
␈↓ εK
␈↓ ↓⊗400001  CTLV      400061  WAKEME  |  400032  INTIRQ    400055  UFBPHY
␈↓ εK
␈↓ ↓⊗400002  SETNAM    400062  GETNAM  |  400026  INTORM    400056  UFBSKP
␈↓ εK
␈↓ ↓⊗400003  SPCWGO    400063  SNEAKW  |  400040  IWAIT     400041  USKIP
␈↓ εK
␈↓ ↓⊗400004  SWAP      400064  SNEAKS  |  400013  JBTSTS        13  UTPCLR
␈↓ εK
␈↓ ↓⊗400005  EIOTM     400065  GDPTIM  |  400050  JOBRD     400034  UWAIT
␈↓ εK
␈↓ ↓⊗400006  LIOTM     400066  SETPRV  |  400023  LINKUP    400070  VDSMAP
␈↓ εK
␈↓ ↓⊗400007  PNAME     400067  DDCHAN  |  400006  LIOTM         10  WAIT
␈↓ εK
␈↓ ↓⊗400010  UFBGET    400070  VDSMAP  |      15  LOGIN     400061  WAKEME
␈↓ εK-------- QQ.RPG ------ 3 -----------
␈↓ ↓⊗400011  UFBGIV    400071  DSKPPN  |      17  LOGOUT
␈↓ εKTTYUUO  0,      INCHRW          PTYUUO  0,      PTYGET
␈↓ ↓⊗400012  UFBCLR    400072  DSKTIM  |      23  MSTIME
␈↓ εK        1,      OUTCHR                  1,      PTYREL
␈↓ ↓⊗400013  JBTSTS    400073  SETCRD  |  400043  NAMEIN
␈↓ εK        2,      INCHRS                  2,      PTIFRE
␈↓ ↓⊗400014  TTYIOS                    |      33  PEEK
␈↓ εK        3,      OUTSTR                  3,      PTOCNT
␈↓ ↓⊗                                  |      30  PJOB
␈↓ εK        4,      INCHWL                  4,      PTRD1S
␈↓ ↓⊗                                  |  400007  PNAME
␈↓ εK        5,      INCHSL                  5,      PTRD1W
␈↓ ↓⊗␈↓ εK        6,      GETLIN                  6,      PTWR1S
␈↓ ↓⊗␈↓ εK        7,      SETLIN                  7,      PTWR1W
␈↓ ↓⊗␈↓ εK        10,     RESCAN                  10,     PTRDS
␈↓ ↓⊗␈↓ εK        11,     CLRBFI                  11,     PTWRS7
␈↓ ↓⊗␈↓ εK        12,     CLRBFO                  12,     PTWRS9
␈↓ ↓⊗␈↓ εK        13,     INSKIP                  13,     PTGETL
␈↓ ↓⊗␈↓ εK        14,     INWAIT                  14,     PTSETL
␈↓ ↓⊗␈↓ εK        15,     SETACT                  15,     PTLOAD
␈↓ ↓⊗␈↓ εK        16,     TTREAD                  16,     PTJOBX
␈↓ ↓⊗␈↓ εK        17,     no-op                   17,       --
␈↓ ↓⊗␈↓ εK
␈↓ ↓⊗␈↓ εKPPIOT   0,      PPSEL           PGIOT   0,      PGSEL
␈↓ ↓⊗␈↓ εK        1,      PPACT                   1,      PGACT
␈↓ ↓⊗␈↓ εK        2,      DPYPOS                  2,      PGCLR
␈↓ ↓⊗␈↓ εK        3,      DPYSIZ                  3,      DDUPG
␈↓ ↓⊗␈↓ εK        4,      PPREL                   4,      PGINFO
␈↓ ↓⊗␈↓ εK        5,      PPINFO
␈↓ ↓⊗␈↓ εK        6,      LEYPOS
␈↓ ↓⊗␈↓ εK        7,      PPHLD
␈↓ ↓⊗␈↓ εK
␈↓ ↓⊗␈↓ εKINTUUO  0,      INTJEN          MAIL    0,      SEND
␈↓ ↓⊗␈↓ εK        1,      IMSTW                   1,      WRCV
␈↓ ↓⊗␈↓ εK        2,      IWKMSK                  2,      SRCV
␈↓ ↓⊗␈↓ εK        3,      INTDMP                  3,      SKPME
␈↓ ↓⊗␈↓ εK        4,      INTIPI                  4,      SKPHIM
␈↓ ↓⊗␈↓ εK                                        5,      SKPSEN
␈↓ ↓⊗␈↓ εK
␈↓ ↓⊗␈↓ εK
␈↓ ↓⊗␈↓ εK
␈↓ ↓⊗␈↓ εK
␈↓ ↓⊗␈↓ εK
␈↓ ↓⊗␈↓ εK
␈↓ ↓⊗␈↓ εK
␈↓ ↓⊗␈↓ εK
␈↓ ↓⊗␈↓ εK
␈↓ ↓⊗␈↓ εK
␈↓ ↓⊗␈↓ εK
␈↓ ↓⊗-------- QQ.RPG ------ 4 -----------␈↓ εK        177     \
␈↓ ↓⊗                        III DISPLAY INSTRUCTIONS
␈↓ εK
␈↓ ↓⊗
␈↓ εKJMP     Jump                                            OP-CODE 20
␈↓ ↓⊗TSS     Test, SET, and Skip                             OP-CODE 12
␈↓ εK _________________________________ _____________________ ___________
␈↓ ↓⊗ ___________ ____________ ___________ ___________ _______ __________
␈↓ εK|0                              17|18                 30|31       35|
␈↓ ↓⊗|0         7|8         15|16       23|24       30|  31   |32      35|
␈↓ εK|               A                 |        unused       |   10000   |
␈↓ ↓⊗|   RESET   |     SET    |    TEST   |   unused  |   I   |   1010   |
␈↓ εK|_________________________________|_____________________|___________|
␈↓ ↓⊗|___________|____________|___________|___________|_______|__________|
␈↓ εK
␈↓ ↓⊗
␈↓ εK        The processor jumps to location A and continues executing.
␈↓ ↓⊗        A skip condition is generated if any of the eight flags is on
␈↓ εK
␈↓ ↓⊗and  the corresponding bit in the TEST field is on.  If the exclusive
␈↓ εKHLT     Halt                                            OP-CODE 00
␈↓ ↓⊗or of the skip condition and bit 31 is true, the next instruction  is
␈↓ εK _________________________________ _____________________ ___________
␈↓ ↓⊗skipped.   The  flags  are then set or reset according to the set and
␈↓ εK|0                              17|18                 30|31       35|
␈↓ ↓⊗reset field.   If both  set and reset bits are on, the  corresponding
␈↓ εK|             unused              |        unused       |   00000   |
␈↓ ↓⊗flag is complemented.  The flags are as follows:
␈↓ εK|_________________________________|_____________________|___________|
␈↓ ↓⊗
␈↓ εK
␈↓ ↓⊗BITS            FLAG
␈↓ εK        The processor stops with its MA  pointing  to  the  location
␈↓ ↓⊗0,8,16          Control  bit.  This bit may be set, reset, and tested
␈↓ εKfollowing the HALT.  The not running flag is turned on.
␈↓ ↓⊗                but has no other meaning to the processor.
␈↓ εK
␈↓ ↓⊗1,9,17          Light pen flag.  The bit is set if the light  pen  is
␈↓ εKJSR     Jump to subroutine                              OP-CODE 24
␈↓ ↓⊗                seen.
␈↓ εK _________________________________ _____________________ ___________
␈↓ ↓⊗2,10,18         Edge  overflow  flag.  This bit is set if the beam is 
␈↓ εK|0                              17|18                 30|31       35|
␈↓ ↓⊗                ever positioned off the screen by any means.
␈↓ εK|               A                 |        unused       |   10100   |
␈↓ ↓⊗3,11,19         Wrap-around flag.  This bit is set if overflow occurs
␈↓ εK|_________________________________|_____________________|___________|
␈↓ ↓⊗                in incremental vector mode.
␈↓ εK
␈↓ ↓⊗4,12,20         Not running mask.  If this bit is on,  the  processor 
␈↓ εK        This  instruction  saves  a  PC word into location A and then
␈↓ ↓⊗                will  interrupt  if  a  halt  is  executed.  This bit 
␈↓ εKexecutes code from location A + 1.  The PC word is in the same format
␈↓ ↓⊗                cannot be set or reset by this instruction.
␈↓ εKas the word stored in location A by the JMS instruction.  The word is
␈↓ ↓⊗5,13,21         Light pen mask.  If this bit  is  on,  the  processor 
␈↓ εKalso a jump instruction so that the subroutine return can be simply a
␈↓ ↓⊗                will interrupt if the light pen flag comes on.
␈↓ εKjump to A.
␈↓ ↓⊗6,14,22         Edge overflow mask.  If this bit is on, the processor 
␈↓ εK
␈↓ ↓⊗                will interrupt if the edge overflow flag comes on.
␈↓ εKJMS     Jump to subroutine and save                     OP-CODE 04
␈↓ ↓⊗7,15,23         Wrap-around  mask.  If  this bit is on, the processor 
␈↓ εK _________________________________ ______________________ __________
␈↓ ↓⊗                will interrupt if the wrap-around flag comes on.
␈↓ εK|0                              17|18                  31|32      35|
␈↓ ↓⊗
␈↓ εK|               A                 |        unused        |   0100   |
␈↓ ↓⊗LVW     Long vector word                                OP-CODE 06
␈↓ εK|_________________________________|______________________|__________|
␈↓ ↓⊗ ___________ ___________ _________ _________ __ _____ _____ ________
␈↓ εK
␈↓ ↓⊗|0        10|11       21|22     24|25     27|28| 29  |30 31|32    35|
␈↓ εK(This instruction is illegal at user level.)    The following word of
␈↓ ↓⊗|     X     |     Y     |   BRT   |   SIZE  |  |  M  |  T  |  0110  |
␈↓ εKinformation is written into location A:
␈↓ ↓⊗|___________|___________|_________|_________|__|_____|_____|________|
␈↓ εK _________________________________ ____________ __________ _________
␈↓ ↓⊗
␈↓ εK|0                              17|18        22|23      30|31     35|
␈↓ ↓⊗        The long vector word draws one vector  with  mode,  type  and
␈↓ εK|                MA               |     CPC    |  unused  |  10000  |
␈↓ ↓⊗brightness as specified by the M, T, and BRT fields respectively. A 0
␈↓ εK|_________________________________|____________|__________|_________|
␈↓ ↓⊗in the BRT field indicates no change in brightness.  1 is the dimmest
␈↓ εK
␈↓ ↓⊗intensity  and  7  the brightest.  The brightness affects all vectors
␈↓ εK        CPC:  The contents of the CPC buffer register.  This register
␈↓ ↓⊗and characters until reset by another long vector word.
␈↓ εKis  loaded  whenever  the  processor discovers an interrupt condition
␈↓ ↓⊗        Mode 0 indicates relative mode and 1 indicates absolute mode.
␈↓ εKwhile processing a character word or short vector word.  It is set to
␈↓ ↓⊗        Type:   0-visible
␈↓ εKthe  number  of  the character being displayed (0-4) or the number of
␈↓ ↓⊗                1-end point
␈↓ εKthe vector of the short vector word (0-1).  It is  reset  by  a  CONO
␈↓ ↓⊗                2-invisible
␈↓ εK430, with the clear flags bit on.
␈↓ ↓⊗                3-undefined, currently end point
␈↓ εK        The following information is written in location A+1:
␈↓ ↓⊗
␈↓ εK _____________ _____________ ___________ ___________ _______________
␈↓ ↓⊗                Characters/line         Lines/screen
␈↓ εK|0          10|11         21|22       24|25       27|28           35|
␈↓ ↓⊗        0           no change
␈↓ εK|      X      |      Y      |    BRT    |    SIZE   |     FLAGS     |
␈↓ ↓⊗        1  smallest   128                    64
␈↓ εK|_____________|_____________|___________|___________|_______________|
␈↓ ↓⊗        2              85                    42
␈↓ εK
␈↓ ↓⊗        3              73                    36
␈↓ εK        The following are the flag bits:
␈↓ ↓⊗        4              64                    32
␈↓ εK                bit 28-control bit
␈↓ ↓⊗        5              42                    21
␈↓ εK                bit 29-light pen flag
␈↓ ↓⊗        6              32                    16
␈↓ εK                bit 30-edge overflow flag
␈↓ ↓⊗        7  largest     21                    10
␈↓ εK                bit 31-wrap around flag
␈↓ ↓⊗
␈↓ εK                bit 32-wrap around mask
␈↓ ↓⊗
␈↓ εK                bit 33-light pen mask
␈↓ ↓⊗SVW     Short vector word                               OP-CODE 02
␈↓ εK                bit 34-edge overflow mask
␈↓ ↓⊗ _________ _________ ________ _________ _________ ________ __________
␈↓ εK                bit 35-always 1
␈↓ ↓⊗|0       6|7      13|14    15|16     22|23     29|30    31|32     35|
␈↓ εK        The program then continues executing at A+2.
␈↓ ↓⊗|   dX1   |   dY1   |   T1   |   dX2   |   dY2   |   T1   |  0010   |
␈↓ εK        Note that A is in the  form  of  a  jump  instruction.   This
␈↓ ↓⊗|_________|_________|________|_________|_________|________|_________|
␈↓ εKpermits subroutine exit to be done by jumping to A.
␈↓ ↓⊗
␈↓ εK
␈↓ ↓⊗        The short vector word always draws two  vectors  in  relative
␈↓ εKSAVE    Save                                            OP-CODE 64
␈↓ ↓⊗mode.   The  type  of each vector is specified by the corresponding T
␈↓ εK_____________________________________________________________________
␈↓ ↓⊗field. The high order bits of the dX and dY fields are extended  left
␈↓ εK|0                              17|18                 29|30       35|
␈↓ ↓⊗to give 11-bit quantities.
␈↓ εK|               A                 |        unused       |  110100   |
␈↓ ↓⊗
␈↓ εK|_________________________________|_____________________|___________|
␈↓ ↓⊗CHR     Character word                                  OP-CODE 1
␈↓ εK
␈↓ ↓⊗ ___________ ___________ ___________ ___________ ___________ ________
␈↓ εK                The   save  instruction  saves  a  position  word  in
␈↓ ↓⊗|0         6|7        13|14       20|21       27|28       34|  35   |
␈↓ εKlocation A. This word is in the same format as the word put into A+1  
␈↓ ↓⊗| character | character | character | character | character |       |
␈↓ εK1  by  the JMS instruction and is in the correct format to be used by
␈↓ ↓⊗|     1     |     2     |     3     |    4      |     5     |   1   |
␈↓ εKthe Restore instruction.
␈↓ ↓⊗|___________|___________|___________|___________|___________|_______|
␈↓ εK
␈↓ ↓⊗
␈↓ εKREST    Restore                                         OP-CODE 14
␈↓ ↓⊗        The characters are displayed in order from left to right with
␈↓ εK_____________________________________________________________________
␈↓ ↓⊗automatic spacing.  All characters are displayed as  printed  on  the
␈↓ εK|0                              17|18        29|  30 |  31 |32    35|
␈↓ ↓⊗line printer with the following exceptions:
␈↓ εK|                B                |   unused   |  P  |  F  |  1100  |
␈↓ ↓⊗        CODE    PRINTS AS
␈↓ εK|_________________________________|____________|_____|_____|________|
␈↓ ↓⊗        011     ignored
␈↓ εK
␈↓ ↓⊗        013     integral sign
␈↓ εK        The contents of location B are assumed to be in the format of
␈↓ ↓⊗        014     plus or minus
␈↓ εKthe  word  stored  in  location  A+1  by  a JMS or the word stored in
␈↓ ↓⊗location A by a SAVE.   If bit 30 is  a  1,  the  X  and  Y  position
␈↓ εK                                Data is irrelephant.
␈↓ ↓⊗registers and the size and brightness registers are reloaded from the
␈↓ εK  1             function code:  Loads  function  code register.  Bits
␈↓ ↓⊗corresponding fields of this word. If bit 31 is a 1,  the  flags  are
␈↓ εK                                will be explained later.
␈↓ ↓⊗restored.
␈↓ εK  2             channel select: Channel specified in data is selected
␈↓ ↓⊗
␈↓ εK                                for  writing.  If erase bit is on and
␈↓ ↓⊗SEL     SELECT (console)                                OP-CODE 10
␈↓ εK                                graphics mode bit is set, the channel
␈↓ ↓⊗_____________________________________________________________________
␈↓ εK                                selected  is erased to the background
␈↓ ↓⊗|0                 11|12                 23|24           31|32    35|
␈↓ εK                                selected by the dark/light bit.
␈↓ ↓⊗|         SET        |        RESET        |     unused    |  1000  |
␈↓ εK  3             column select:  Data   is  loaded   into  the  column
␈↓ ↓⊗|____________________|_____________________|_______________|________|
␈↓ εK                                register and the line buffer  address
␈↓ ↓⊗
␈↓ εK                                register.   This  sets the X position
␈↓ ↓⊗        If any of bits 0-11 are 1,  the  corresponding  consoles  are
␈↓ εK                                of your output. Column 0  is  illegal
␈↓ ↓⊗selected.    If any of bits 12-23 are 1, the consoles are deselected.
␈↓ εK                                and will hang the controller.  Column
␈↓ ↓⊗If both the select and de-select bits are on, the state of  selection
␈↓ εK                                85 is the last column to be displayed
␈↓ ↓⊗of that console will be complemented.
␈↓ εK                                with  characters; characters sent for
␈↓ ↓⊗␈↓ εK                                columns 86-128 are flushed, over 128,
␈↓ ↓⊗␈↓ εK                                you wrap around.    A  column  select
␈↓ ↓⊗␈↓ εK                                greater  than  85  will also hang the
␈↓ ↓⊗␈↓ εK                                controller.  The last graphics column
␈↓ ↓⊗␈↓ εK                                is  64  and columns greater than that
␈↓ ↓⊗␈↓ εK                                will hang the controller.
␈↓ ↓⊗␈↓ εK  4             high order      Data  is loaded  into the  high order
␈↓ ↓⊗␈↓ εK                line address:   5 bits of the line address.
␈↓ ↓⊗␈↓ εK  5             low order       Data is loaded into the  low  order 4
␈↓ ↓⊗␈↓ εK                line address:   bits of the line address.  Line range
␈↓ ↓⊗␈↓ εK                                is  from  0  to  541  (octal).   Line
␈↓ ↓⊗␈↓ εK                                addresses  between  542 and 777 cause
␈↓ ↓⊗␈↓ εK                                execute  commands  to   be   ignored.
␈↓ ↓⊗␈↓ εK                                Above 777 wraps around.
␈↓ ↓⊗␈↓ εK  6             write directly: Data  is written directly on the disc
␈↓ ↓⊗␈↓ εK                                at the  location  previously  set  up
␈↓ ↓⊗␈↓ εK                                without  using  the  line buffer. The
␈↓ ↓⊗␈↓ εK                                column   address   is   automatically
␈↓ ↓⊗␈↓ εK                                incremented.     Executes   are   not
␈↓ ↓⊗␈↓ εK                                necessary.
␈↓ ↓⊗␈↓ εK  7             line buffer     Data  is  loaded into the line buffer
␈↓ ↓⊗␈↓ εK                address:        address only.  This  allows  some  of
␈↓ ↓⊗␈↓ εK                                of  the  line  buffer  contents to be
␈↓ ↓⊗␈↓ εK                                changed and the  rest  retained.  The
␈↓ ↓⊗␈↓ εK                                first character displayed will be the
␈↓ ↓⊗␈↓ εK                                one specified by the column  address,
␈↓ ↓⊗␈↓ εK                                and  the  last  character will be the
␈↓ ↓⊗␈↓ εK                                last one sent after this command.
␈↓ ↓⊗␈↓ εK
␈↓ ↓⊗-------- QQ.RPG ------ 5 -----------␈↓ εK
␈↓ ↓⊗                        DATA DISC
␈↓ εK        The function code register has the following format:
␈↓ ↓⊗
␈↓ εK
␈↓ ↓⊗Text word.
␈↓ εK    8       7       6       5       4       3       2       1
␈↓ ↓⊗ ___________________________________________________________
␈↓ εK _______________________________________________________________
␈↓ ↓⊗|0        6|7         13|14      20|21      27|28     35| 35|
␈↓ εK|       |       |single | space |2 wide | dark  | write |graphic|
␈↓ ↓⊗|   chr1   |    chr2    |   chr3   |   chr4   |   chr5  | 1 |
␈↓ εK|unused |unused |height | (add) |(erase)| back  |enable | mode  | 1
␈↓ ↓⊗|__________|____________|__________|__________|_________|___|
␈↓ εK|_______|_______|_______|_______|_______|_______|_______|_______|
␈↓ ↓⊗
␈↓ εK|       |       |double |nospace|       | light |display| alpha |
␈↓ ↓⊗Upon receiving a text word, the interface sends the characters to the
␈↓ εK|unused |unused |height | (rep) |1 wide | back  |direct |numeric| 0
␈↓ ↓⊗disc's  line  buffer.      Tabs  and  backspaces  are  ignored unless
␈↓ εK|_______|_______|_______|_______|_______|_______|_______|_______|
␈↓ ↓⊗preceeded by a backspace (177) in which case, a special character  is
␈↓ εK  MSB           |                       |                  LSB  |
␈↓ ↓⊗printed  (i.e.    a  small  tb is printed for tab).  Nulls are always
␈↓ εK
␈↓ ↓⊗ignored.  Carriage return and line feed are specially processed to do
␈↓ εK       single height/double height:     Single height characters  are
␈↓ ↓⊗the  right thing:  If characters have been transmitted since the last
␈↓ εK40     12  lines  tall;  10  lines  above the "base" line and 2 lines
␈↓ ↓⊗execute command (see command word below), an  execute  is  generated.
␈↓ εKbit    below. Top line of character prints  on  the  line  addressed.
␈↓ ↓⊗Then carriage return causes the interface to send column select of 2;
␈↓ εK       This bit has no effect in graphics mode.
␈↓ ↓⊗line feed sends a line address  (both  parts)  14  greater  than  the
␈↓ εK
␈↓ ↓⊗previous  line  address sent.  Both carriage return and line feed, if
␈↓ εK       space/nospace:   when  this  bit   is   on,   characters   are
␈↓ ↓⊗preceeded by a 177, print special characters  instead  of  the  above
␈↓ εK20     substituted  on  top of the line previously written; when off,
␈↓ ↓⊗functions.
␈↓ εKbit    remainder of line is erased.  In graphics mode this  bit  does
␈↓ ↓⊗
␈↓ εK       this:
␈↓ ↓⊗Graphics word
␈↓ εK
␈↓ ↓⊗ ___________________________________________________________
␈↓ εK       additive/replacement:    When  this bit is on, only 1 bits are
␈↓ ↓⊗|0          7|8          15|16        23|24        31|32  35|
␈↓ εK20     written, ORed with the bits already written; when off, 1's and
␈↓ ↓⊗|   byte 1   |   byte 2    |   byte 3   |   byte 4   |  02  |
␈↓ εKbit    0's  are  written  clobbering  previous  data.  CAUTION!: when
␈↓ ↓⊗|____________|_____________|____________|____________|______|
␈↓ εK(G)    replacing, the bits at the  beginning  and  end  of  the  line
␈↓ ↓⊗
␈↓ εK       segment  you  are  writing  should be the same as the previous
␈↓ ↓⊗The  interface  sends  all  4 8-bit bytes directly to the disc's line
␈↓ εK       data or bit lossage may occur.
␈↓ ↓⊗buffer with no modification.
␈↓ εK
␈↓ ↓⊗
␈↓ εK       double width/single width:       With this bit on,  characters
␈↓ ↓⊗Command word
␈↓ εK10     are  5  bits  wide  with  a  0  bit on the end (total 6 bits);
␈↓ ↓⊗ ___________________________________________________________
␈↓ εKbit    characters are 10 bits wide with two 0 bits on  the  end  when
␈↓ ↓⊗|0          7|8         15|16         23|2426|2729|3032|3335|
␈↓ εK       the  bit is off. CAUTION!: When using double width characters,
␈↓ ↓⊗|   data 1   |   data 2   |    data 3   |op 1|op 2|op 3| 4  |
␈↓ εK       do not exceed 43 characters in a line or the  controller  will
␈↓ ↓⊗|____________|____________|_____________|____|____|____|____|
␈↓ εK       hang.  In graphics mode this bit does this:
␈↓ ↓⊗
␈↓ εK
␈↓ ↓⊗A  command  word  causes the interface to send DD three command bytes
␈↓ εK10     erase:   in  graphics mode, if this bit is on, the screen will
␈↓ ↓⊗with the op-codes specified.  The commands possible are as follows:
␈↓ εKbit    be erased to the background selected when a channel select  is
␈↓ ↓⊗
␈↓ εK(G)    done.
␈↓ ↓⊗OP-CODE         USE
␈↓ εK
␈↓ ↓⊗
␈↓ εK       dark/light:      When  this  bit is on, erase causes screen to
␈↓ ↓⊗  0             Execute:        Empties line buffer onto the disc  at
␈↓ εK4      go dark and characters and graphic 1 bits are light. When off,
␈↓ ↓⊗                                the  position  previously  specified.
␈↓ εKbit    erase  goes  to  light  and  characters and graphic 1 bits are
␈↓ ↓⊗       dark.
␈↓ εK                file in Read-Alter mode).
␈↓ ↓⊗
␈↓ εK  7     (This error code cannot occur.)
␈↓ ↓⊗       write/display directly:  When this bit is on, operations go to
␈↓ εK 10     BAD RETRIEVAL.  Some disk pointers have been garbaged
␈↓ ↓⊗2      the  disc.  When  off,  data is displayed once on the selected
␈↓ εK        somewhere.  This should not happen.
␈↓ ↓⊗bit    channel and then goes away and previous data remains.
␈↓ εK 11     BAD RETRIEVAL.  Slightly different version of above.
␈↓ ↓⊗
␈↓ εK 12     DISK IS FULL.  (ENTER only)
␈↓ ↓⊗1      alphanumerics/graphics:  When this  bit  is  on,  you  are  in
␈↓ εK        ENTER:  There is no more room on the disk.
␈↓ ↓⊗bit    graphics mode; you are in alphanumeric mode when it is off.
␈↓ εK
␈↓ ↓⊗
␈↓ εKMtape UUO:
␈↓ ↓⊗
␈↓ εK  1    This causes the magnetic  tape initialized on this  channel to
␈↓ ↓⊗JMP     Jump                                            OP-CODE 20
␈↓ εK       be rewound.
␈↓ ↓⊗ _________________________________ _______________ _________
␈↓ εK  3    This causes an end-of-file mark to be written on the tape.
␈↓ ↓⊗|0                              17|18           29|30     35|
␈↓ εK  6    This causes the tape to be advanced one record.
␈↓ ↓⊗|               A                 |     unused    |   20    |
␈↓ εK  7    This causes the tape to be backspaced one record.
␈↓ ↓⊗|_________________________________|_______________|_________|
␈↓ εK 10    This causes  the tape  to be  advanced to  the logical  end of
␈↓ ↓⊗
␈↓ εK       tape.  Logical  end of  tape is  signified by  two consecutive
␈↓ ↓⊗        The  processor jumps  to absolute  location  A and  continues
␈↓ εK       end-of-file  marks.  The  tape  is left  positioned  after the
␈↓ ↓⊗executing.  WARNING: This instruction is hazardous to your health.
␈↓ εK       second mark by this operation.
␈↓ ↓⊗
␈↓ εK 13    This causes  three inches  of blank tape  to be  written.  The
␈↓ ↓⊗Halt
␈↓ εK       purpose of  this is  to cause  a bad  spot on  the tape  to be
␈↓ ↓⊗ ___________________________________________________________
␈↓ εK       ignored.   Perfectly blank  tape looks  like  an end-of-record
␈↓ ↓⊗|0                                              29|30     35|
␈↓ εK       mark  to   the  controller  and   is  ignored.    The  monitor
␈↓ ↓⊗|                       unused                    |    X0   |
␈↓ εK       automatically writes blank tape over bad spots on the tape.
␈↓ ↓⊗|_________________________________________________|_________|
␈↓ εK 16    This causes  the tape to  be advanced one  file.  The  tape is
␈↓ ↓⊗␈↓ εK       positioned  after  the end-of-file  mark  that  terminates the
␈↓ ↓⊗␈↓ εK       file.
␈↓ ↓⊗␈↓ εK 17    This causes the tape to  be backspaced one file.  The  tape is
␈↓ ↓⊗␈↓ εK       positioned  before  the end-of-file  mark  at the  end  of the
␈↓ ↓⊗␈↓ εK       previous file.
␈↓ ↓⊗␈↓ εK
␈↓ ↓⊗␈↓ εKDevice Characteristics:
␈↓ ↓⊗␈↓ εK0       The device is a dectape and its directory is in core.
␈↓ ↓⊗␈↓ εK1       The device is the disk.
␈↓ ↓⊗␈↓ εK2       The device is the user disk pack (UDP).
␈↓ ↓⊗␈↓ εK3       The device is the line printer.
␈↓ ↓⊗␈↓ εK4       The device is a teletype which is attached to a job.
␈↓ ↓⊗␈↓ εK5       The device is a teletype which is in use.
␈↓ ↓⊗␈↓ εK6       The device is a TV camera.
␈↓ ↓⊗␈↓ εK7       The device is a DEC type 30 display. There
␈↓ ↓⊗␈↓ εK        are none of these at Stanford.
␈↓ ↓⊗␈↓ εK8       The device has a long dispatch table, which means that
␈↓ ↓⊗␈↓ εK        it will accept UUOs other than INPUT and OUTPUT, such
␈↓ ↓⊗␈↓ εK        as MTAPE, USETO and LOOKUP.
␈↓ ↓⊗␈↓ εK9       The device is a paper tape punch.
␈↓ ↓⊗-------- QQ.RPG ------ 6 -----------␈↓ εK10      The device is a paper tape reader.
␈↓ ↓⊗                        INPUT/OUTPUT
␈↓ εK11      The device is a dectape.
␈↓ ↓⊗
␈↓ εK12      the device is available to the job that gave the DEVCHR
␈↓ ↓⊗Data Modes:
␈↓ εK        UUO.
␈↓ ↓⊗  0     ASCII           Buffered characters (7 bit byte pointer)
␈↓ εK13      The device is a magnetic tape.
␈↓ ↓⊗  1     ASCII LINE      Buffered characters (7 bit byte pointer)
␈↓ εK14      The device is a teletype.
␈↓ ↓⊗ 10     IMAGE           Buffered words (36 bit byte pointer)
␈↓ εK15      The device has a directory. At Stanford, this means The
␈↓ ↓⊗ 13     IMAGE BINARY    Buffered words (36 bit byte pointer)
␈↓ εK        device is a dectape or the disk.
␈↓ ↓⊗ 14     BINARY          Buffered words (36 bit byte pointer)
␈↓ εK16      The device can do input.
␈↓ ↓⊗ 16     DUMP RECORD     Unbuffered
␈↓ εK17      The device can do output.
␈↓ ↓⊗ 17     DUMP            Unbuffered
␈↓ εK18      The device has been assigned with the ASSIGN command.
␈↓ ↓⊗
␈↓ εK19      Some job has done an INIT or OPEN on this device.
␈↓ ↓⊗Status Bits:
␈↓ εK
␈↓ ↓⊗ 18     IOIMPM     Improper mode.
␈↓ εK
␈↓ ↓⊗ 19     IODERR     Device detected parity error.
␈↓ εK
␈↓ ↓⊗ 20     IODTER     Device detected data error.
␈↓ εK
␈↓ ↓⊗ 21     IOBKTL     Dectape block number out of bounds.
␈↓ εK
␈↓ ↓⊗ 22     IODEND     End of file.
␈↓ εK
␈↓ ↓⊗ 23     IOACT      Device is active.
␈↓ εK
␈↓ ↓⊗24-29              Unused or peculiar to the device.
␈↓ εK
␈↓ ↓⊗ 30                Synchronize buffered I/O.
␈↓ εK
␈↓ ↓⊗ 31     IOWC       Inhibit system computation of output word count.
␈↓ εK
␈↓ ↓⊗32-35              Data mode.
␈↓ εK
␈↓ ↓⊗
␈↓ εK
␈↓ ↓⊗
␈↓ εK
␈↓ ↓⊗Error Codes for LOOKUP, ENTER and RENAME with the Disk:
␈↓ εK
␈↓ ↓⊗  0     NO SUCH FILE.
␈↓ εK
␈↓ ↓⊗        LOOKUP: File specified does not exist.
␈↓ εK
␈↓ ↓⊗        ENTER:  Zero file name given.
␈↓ εK
␈↓ ↓⊗        RENAME: File LOOKUPed or ENTERed no longer exists.
␈↓ εK
␈↓ ↓⊗  1     ILLEGAL PPN.  (PPN specified has no UFD.)
␈↓ εK
␈↓ ↓⊗  2     PROTECTION VIOLATION.  File is protected from what you
␈↓ εK
␈↓ ↓⊗        tried to do.
␈↓ εK
␈↓ ↓⊗  3     FILE BUSY.
␈↓ εK
␈↓ ↓⊗        LOOKUP: File is currently open in Read-Alter mode.
␈↓ εK
␈↓ ↓⊗        ENTER:  File is currently being written.
␈↓ εK
␈↓ ↓⊗        RENAME: File is currently being read.
␈↓ εK
␈↓ ↓⊗  4     FILE ALREADY EXISTS.  (RENAME only)
␈↓ εK
␈↓ ↓⊗        RENAME: There is already a file with the new name given.
␈↓ εK
␈↓ ↓⊗  5     NO FILE OPEN.  (RENAME only)
␈↓ εK
␈↓ ↓⊗        RENAME: No successful LOOKUP or ENTER has been done yet.
␈↓ εK
␈↓ ↓⊗  6     DIFFERENT FILE NAME SPECIFIED.  (ENTER only)
␈↓ εK
␈↓ ↓⊗        ENTER:  The file name does not match that of a LOOKUP
␈↓ εK
␈↓ ↓⊗                already done on this channel (attempt to open
␈↓ εK
␈↓ ↓⊗-------- QQ.RPG ------ 7 -----------␈↓ εK
␈↓ ↓⊗                        MISCELLANEOUS
␈↓ εK     0       1       2       3
␈↓ ↓⊗
␈↓ εK     01234567012345670123456701234567
␈↓ ↓⊗ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____
␈↓ εK
␈↓ ↓⊗|    2|    5|    8|   11|   14|   17|   20|   23|   26|   29|   32|   35|
␈↓ εK000   ↓αβ∧¬επλ     ∞∂⊂⊃∩∪∀∃⊗↔_→~≠≤≥≡∨
␈↓ ↓⊗|     |     |     |     |     |     |     |     |     |     |     |     |
␈↓ εK040   !"#$%&'()*+,-./0123456789:;<=>?
␈↓ ↓⊗|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|_____|
␈↓ εK100  @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]↑←
␈↓ ↓⊗|0             7|8            15|16           23|24           31|32   35|   ␈↓ εK140  `abcdefghijklmnopqrstuvwxyz{|~}
␈↓ ↓⊗|    8 BITS     |               |               |               |       |   ␈↓ εK
␈↓ ↓⊗|_______________|_______________|_______________|_______________|_______|
␈↓ εK
␈↓ ↓⊗|0           6|7          13|14         20|21         27|28         34| |
␈↓ εKChannels for synthesizers in order of decreasing brightness:
␈↓ ↓⊗|   7 BITS    |             |             |             |             | |
␈↓ εKB/W     36 37 34 33 35 32
␈↓ ↓⊗|_____________|_____________|_____________|_____________|_____________|_|
␈↓ εKColor   31 25 26 27 30 24
␈↓ ↓⊗
␈↓ εK
␈↓ ↓⊗
␈↓ εK
␈↓ ↓⊗INSTRUCTION FORMAT
␈↓ εK
␈↓ ↓⊗ _________________ _______ _ _______ ___________________________________
␈↓ εK
␈↓ ↓⊗|0               8|9    12| |14   17|18                               35|
␈↓ εK
␈↓ ↓⊗|     OPCODE      |  AC   |I| INDEX |            ADDRESS                |
␈↓ εK
␈↓ ↓⊗|_________________|_______|_|_______|___________________________________|
␈↓ εK
␈↓ ↓⊗
␈↓ εK
␈↓ ↓⊗
␈↓ εK
␈↓ ↓⊗FLAGS IN LEFT HALF OF PC WORD
␈↓ εK
␈↓ ↓⊗ _________________________________________________________________________
␈↓ εK
␈↓ ↓⊗|0    |     |    2|     |     |    5|     |    |   8|    |    |   11|     |
␈↓ εK
␈↓ ↓⊗|OVER |CARRY|CARRY|FLOAT|BYTE |USER |IOT  | THESE 4 BITS HAVE |FLOAT| NO  |
␈↓ εK
␈↓ ↓⊗|FLOW |  0  |  1  |OVERF|INT  |MODE |USER | UNKNOWN FUNCTIONS |UNDER| DIV.|
␈↓ εK
␈↓ ↓⊗|_____|_____|_____|_____|_____|_____|_____|____|____|____|____|_____|_____|
␈↓ εK
␈↓ ↓⊗
␈↓ εK
␈↓ ↓⊗
␈↓ εK
␈↓ ↓⊗WORD    SYMBOL
␈↓ εK
␈↓ ↓⊗0       JOBAC
␈↓ εK
␈↓ ↓⊗20      JOBDAC
␈↓ εK
␈↓ ↓⊗40      JOBUUO
␈↓ εK
␈↓ ↓⊗41      JOB41
␈↓ εK
␈↓ ↓⊗43      JOBENB
␈↓ εK
␈↓ ↓⊗44      JOBREL          JOBPDL
␈↓ εK
␈↓ ↓⊗45      JOBPD1
␈↓ εK
␈↓ ↓⊗72      JOBHCU          JOBPRT
␈↓ εK
␈↓ ↓⊗73      JOBPC           JOBSAV
␈↓ εK
␈↓ ↓⊗74      JOBDDT
␈↓ εK
␈↓ ↓⊗75      JOBJDA
␈↓ εK
␈↓ ↓⊗114     JOBPFI
␈↓ εK
␈↓ ↓⊗116     JOBSYM
␈↓ εK
␈↓ ↓⊗117     JOBUSY
␈↓ εK-------- QQ.RPG ------ 8 -----------
␈↓ ↓⊗120     JOBSA
␈↓ εK                        FAIL
␈↓ ↓⊗121     JOBFF
␈↓ εK
␈↓ ↓⊗122     JOBS41
␈↓ εKSymbol  Meaning                 Priority Level
␈↓ ↓⊗123     JOBEXM
␈↓ εK
␈↓ ↓⊗124     JOBREN
␈↓ εK +      PLUS                    1
␈↓ ↓⊗125     JOBAPR
␈↓ εK -      (binary) MINUS          1
␈↓ ↓⊗126     JOBCNI
␈↓ εK *      TIMES                   2
␈↓ ↓⊗127     JOBTPC
␈↓ εK /      DIVIDED-BY              2
␈↓ ↓⊗130     JOBOPC
␈↓ εK ∧      AND                     3
␈↓ ↓⊗131     JOBCHN
␈↓ εK ∨      OR                      3
␈↓ ↓⊗132     JOBFDV
␈↓ εK ≠      XOR                     3
␈↓ ↓⊗133     JOBCOR
␈↓ εK ⊗      LEFT-SHIFT (logical)    4
␈↓ ↓⊗140     JOBDA
␈↓ εK -      (unary) MINUS
␈↓ ↓⊗
␈↓ εK         (two's complement)     5
␈↓ ↓⊗
␈↓ εK ¬      (unary) NOT
␈↓ ↓⊗USER INTERRUPT BITS
␈↓ εK         (one's complement)     5
␈↓ ↓⊗
␈↓ εK
␈↓ ↓⊗XD      INTSWW,400000           ; INTERRUPT BEFORE SWAPPING
␈↓ εKNumeric IF's
␈↓ ↓⊗XD      INTSWD,200000           ; INTERRUPT WHEN SWAP DONE
␈↓ εK        IFE, IFN, IFG, IFL, IFGE, IFLE
␈↓ ↓⊗XD      INTSHW,100000           ; INTERRUPT BEFORE SHUFFLING
␈↓ εK
␈↓ ↓⊗XD      INTSHD,040000           ; INTERRUPT WHEN SHUFFLE COMPLETE
␈↓ εKText IF's
␈↓ ↓⊗XD      INTTTY,020000           ; INTERRUPT ON TELETYPE INPUT
␈↓ εK        IFIDN {text1}{text2}{text3}
␈↓ ↓⊗XD      INTPTI,010000           ; INTERRUPT ON PSEUDO-TELETYPE INPUT
␈↓ εK        IFDIF {text1}{text2}{text3}
␈↓ ↓⊗XD      INTMAIL,004000          ; INTERRUPT ON MAIL
␈↓ εK
␈↓ ↓⊗XD      INTWAIT,002000          ; INTERRUPT ON UUO COMPLETE
␈↓ εKSymbol IF's
␈↓ ↓⊗XD      INTPTO,001000           ; INTERRUPT ON PSEUDO-TELETYPE OUTPUT
␈↓ εK        IFDEF,IFNDEF            ;If defined
␈↓ ↓⊗XD      INTPAR,000400           ; PARITY ERROR INTERRUPT
␈↓ εK        IFAVL,IFNAVL            ;If value is immediately available
␈↓ ↓⊗XD      INTCLK,000200           ; CLOCK INTERRUPT
␈↓ εK        IFOP,IFNOP              ;If defined as opdef
␈↓ ↓⊗XD      INTINR,000100           ; IMP INTERRUPT BY RECEIVER
␈↓ εK        IFMAC,IFNMAC            If defined as macro
␈↓ ↓⊗XD      INTINS,000040           ; IMP INTERRUPT BY SENDER
␈↓ εK
␈↓ ↓⊗XD      INTIMS,000020           ; IMP STATUS CHANGE INTERRUPT
␈↓ εK
␈↓ ↓⊗XD      INTINP,000010           ; IMP INPUT WAITING
␈↓ εK
␈↓ ↓⊗XD      INTTTI,000004           ; INTERRUPT ON <ESC>I
␈↓ εK
␈↓ ↓⊗XD      INTQXF,2                ;INTERRUPT ON Q XFER
␈↓ εK
␈↓ ↓⊗; INTERRUPT BIT ASSIGNMENTS - RH
␈↓ εK
␈↓ ↓⊗XD      CNS,400000              ; INTERRUPT ON CONS TRAP
␈↓ εK
␈↓ ↓⊗XD      POV,200000              ; INTERRUPT ON PDL OV
␈↓ εK
␈↓ ↓⊗XD      ILM,20000               ; INTERRUPT ON ILL. MEM. REF.
␈↓ εK
␈↓ ↓⊗XD      NXM,10000               ; INTERRUPT ON NON-EX. MEM.
␈↓ εK
␈↓ ↓⊗XD      INTFOV,100              ; INTERRUPT ON FOATING OVERFLOW
␈↓ εK
␈↓ ↓⊗XD      INTOV,10                ; INTERRUPT ON ARITHMETIC OVERFLOW
␈↓ εK
␈↓ ↓⊗
␈↓ εK
␈↓ ↓⊗
␈↓ εK